/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

API网关
API网关相关接口

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/


#ifndef ApigatewayClient_h
#define ApigatewayClient_h


#import <JDCloudOCSDKCore/JDCloudOCSDKCore.h>
#import <JDCloudOCSDKApigateway/ApigatewayApiModel.h>

@interface ApigatewayClient : NSObject<JDCloudClient>{
    @private
    NSString* _userAgent;
    NSString* _serviceName;
    NSString* _version;
    }

    @property (strong,readonly,nonatomic) NSString* userAgent;

    @property (strong,readonly,nonatomic) NSString* serviceName;

    @property (strong,readonly,nonatomic) NSString* version;

    @property (strong,nonatomic) NSString* contentType;

    @property (strong,nonatomic) Credential* credential;

    @property (strong,nonatomic) SDKEnvironment* sdkEnvironment;

    @property (strong,nonatomic) NSMutableDictionary* customHeader;

    @property  (strong,nonatomic) NSString* httpRequestProtocol;

    -(void) addCustomerHeaderWithKey:(NSString*) key
    value:(NSString*) value;

    -(id)initWithGlobalConfig;

    -(id)initWithCredential:(Credential*)credential
    sdkEnvironment:(SDKEnvironment*)sdkEnvironment;
    -(id)initWithCredential:(Credential*)credential;
    /**
    createUserDomain sync request
    @param createUserDomainRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createUserDomainResponse` the request response data model
    */
    -(NSDictionary*) createUserDomainSyncWithRequest:(ApigatewayCreateUserDomainRequest*) createUserDomainRequest;

    -(void)createUserDomainAsyncWithRequest:(ApigatewayCreateUserDomainRequest*) createUserDomainRequest
    completionHandler:(void(^)(int statusCode,ApigatewayCreateUserDomainResponse* _Nullable createUserDomainResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    checkGroupNameExist sync request
    @param checkGroupNameExistRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `checkGroupNameExistResponse` the request response data model
    */
    -(NSDictionary*) checkGroupNameExistSyncWithRequest:(ApigatewayCheckGroupNameExistRequest*) checkGroupNameExistRequest;

    -(void)checkGroupNameExistAsyncWithRequest:(ApigatewayCheckGroupNameExistRequest*) checkGroupNameExistRequest
    completionHandler:(void(^)(int statusCode,ApigatewayCheckGroupNameExistResponse* _Nullable checkGroupNameExistResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteApiByName sync request
    @param deleteApiByNameRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteApiByNameResponse` the request response data model
    */
    -(NSDictionary*) deleteApiByNameSyncWithRequest:(ApigatewayDeleteApiByNameRequest*) deleteApiByNameRequest;

    -(void)deleteApiByNameAsyncWithRequest:(ApigatewayDeleteApiByNameRequest*) deleteApiByNameRequest
    completionHandler:(void(^)(int statusCode,ApigatewayDeleteApiByNameResponse* _Nullable deleteApiByNameResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeIsDeployApiGroups sync request
    @param describeIsDeployApiGroupsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeIsDeployApiGroupsResponse` the request response data model
    */
    -(NSDictionary*) describeIsDeployApiGroupsSyncWithRequest:(ApigatewayDescribeIsDeployApiGroupsRequest*) describeIsDeployApiGroupsRequest;

    -(void)describeIsDeployApiGroupsAsyncWithRequest:(ApigatewayDescribeIsDeployApiGroupsRequest*) describeIsDeployApiGroupsRequest
    completionHandler:(void(^)(int statusCode,ApigatewayDescribeIsDeployApiGroupsResponse* _Nullable describeIsDeployApiGroupsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteAccessKey sync request
    @param deleteAccessKeyRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteAccessKeyResponse` the request response data model
    */
    -(NSDictionary*) deleteAccessKeySyncWithRequest:(ApigatewayDeleteAccessKeyRequest*) deleteAccessKeyRequest;

    -(void)deleteAccessKeyAsyncWithRequest:(ApigatewayDeleteAccessKeyRequest*) deleteAccessKeyRequest
    completionHandler:(void(^)(int statusCode,ApigatewayDeleteAccessKeyResponse* _Nullable deleteAccessKeyResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteSubscriptionKey sync request
    @param deleteSubscriptionKeyRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteSubscriptionKeyResponse` the request response data model
    */
    -(NSDictionary*) deleteSubscriptionKeySyncWithRequest:(ApigatewayDeleteSubscriptionKeyRequest*) deleteSubscriptionKeyRequest;

    -(void)deleteSubscriptionKeyAsyncWithRequest:(ApigatewayDeleteSubscriptionKeyRequest*) deleteSubscriptionKeyRequest
    completionHandler:(void(^)(int statusCode,ApigatewayDeleteSubscriptionKeyResponse* _Nullable deleteSubscriptionKeyResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createApis sync request
    @param createApisRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createApisResponse` the request response data model
    */
    -(NSDictionary*) createApisSyncWithRequest:(ApigatewayCreateApisRequest*) createApisRequest;

    -(void)createApisAsyncWithRequest:(ApigatewayCreateApisRequest*) createApisRequest
    completionHandler:(void(^)(int statusCode,ApigatewayCreateApisResponse* _Nullable createApisResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    updateRateLimitPolicy sync request
    @param updateRateLimitPolicyRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `updateRateLimitPolicyResponse` the request response data model
    */
    -(NSDictionary*) updateRateLimitPolicySyncWithRequest:(ApigatewayUpdateRateLimitPolicyRequest*) updateRateLimitPolicyRequest;

    -(void)updateRateLimitPolicyAsyncWithRequest:(ApigatewayUpdateRateLimitPolicyRequest*) updateRateLimitPolicyRequest
    completionHandler:(void(^)(int statusCode,ApigatewayUpdateRateLimitPolicyResponse* _Nullable updateRateLimitPolicyResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    bindGroupKey sync request
    @param bindGroupKeyRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `bindGroupKeyResponse` the request response data model
    */
    -(NSDictionary*) bindGroupKeySyncWithRequest:(ApigatewayBindGroupKeyRequest*) bindGroupKeyRequest;

    -(void)bindGroupKeyAsyncWithRequest:(ApigatewayBindGroupKeyRequest*) bindGroupKeyRequest
    completionHandler:(void(^)(int statusCode,ApigatewayBindGroupKeyResponse* _Nullable bindGroupKeyResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    checkAuthExist sync request
    @param checkAuthExistRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `checkAuthExistResponse` the request response data model
    */
    -(NSDictionary*) checkAuthExistSyncWithRequest:(ApigatewayCheckAuthExistRequest*) checkAuthExistRequest;

    -(void)checkAuthExistAsyncWithRequest:(ApigatewayCheckAuthExistRequest*) checkAuthExistRequest
    completionHandler:(void(^)(int statusCode,ApigatewayCheckAuthExistResponse* _Nullable checkAuthExistResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    offline sync request
    @param offlineRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `offlineResponse` the request response data model
    */
    -(NSDictionary*) offlineSyncWithRequest:(ApigatewayOfflineRequest*) offlineRequest;

    -(void)offlineAsyncWithRequest:(ApigatewayOfflineRequest*) offlineRequest
    completionHandler:(void(^)(int statusCode,ApigatewayOfflineResponse* _Nullable offlineResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    queryAccessKey sync request
    @param queryAccessKeyRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryAccessKeyResponse` the request response data model
    */
    -(NSDictionary*) queryAccessKeySyncWithRequest:(ApigatewayQueryAccessKeyRequest*) queryAccessKeyRequest;

    -(void)queryAccessKeyAsyncWithRequest:(ApigatewayQueryAccessKeyRequest*) queryAccessKeyRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQueryAccessKeyResponse* _Nullable queryAccessKeyResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    bindGroupAuth sync request
    @param bindGroupAuthRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `bindGroupAuthResponse` the request response data model
    */
    -(NSDictionary*) bindGroupAuthSyncWithRequest:(ApigatewayBindGroupAuthRequest*) bindGroupAuthRequest;

    -(void)bindGroupAuthAsyncWithRequest:(ApigatewayBindGroupAuthRequest*) bindGroupAuthRequest
    completionHandler:(void(^)(int statusCode,ApigatewayBindGroupAuthResponse* _Nullable bindGroupAuthResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    getRevisionIds sync request
    @param getRevisionIdsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `getRevisionIdsResponse` the request response data model
    */
    -(NSDictionary*) getRevisionIdsSyncWithRequest:(ApigatewayGetRevisionIdsRequest*) getRevisionIdsRequest;

    -(void)getRevisionIdsAsyncWithRequest:(ApigatewayGetRevisionIdsRequest*) getRevisionIdsRequest
    completionHandler:(void(^)(int statusCode,ApigatewayGetRevisionIdsResponse* _Nullable getRevisionIdsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    checkKeyExist sync request
    @param checkKeyExistRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `checkKeyExistResponse` the request response data model
    */
    -(NSDictionary*) checkKeyExistSyncWithRequest:(ApigatewayCheckKeyExistRequest*) checkKeyExistRequest;

    -(void)checkKeyExistAsyncWithRequest:(ApigatewayCheckKeyExistRequest*) checkKeyExistRequest
    completionHandler:(void(^)(int statusCode,ApigatewayCheckKeyExistResponse* _Nullable checkKeyExistResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    queryAccessAuths sync request
    @param queryAccessAuthsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryAccessAuthsResponse` the request response data model
    */
    -(NSDictionary*) queryAccessAuthsSyncWithRequest:(ApigatewayQueryAccessAuthsRequest*) queryAccessAuthsRequest;

    -(void)queryAccessAuthsAsyncWithRequest:(ApigatewayQueryAccessAuthsRequest*) queryAccessAuthsRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQueryAccessAuthsResponse* _Nullable queryAccessAuthsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    queryRevision sync request
    @param queryRevisionRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryRevisionResponse` the request response data model
    */
    -(NSDictionary*) queryRevisionSyncWithRequest:(ApigatewayQueryRevisionRequest*) queryRevisionRequest;

    -(void)queryRevisionAsyncWithRequest:(ApigatewayQueryRevisionRequest*) queryRevisionRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQueryRevisionResponse* _Nullable queryRevisionResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createBackendConfig sync request
    @param createBackendConfigRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createBackendConfigResponse` the request response data model
    */
    -(NSDictionary*) createBackendConfigSyncWithRequest:(ApigatewayCreateBackendConfigRequest*) createBackendConfigRequest;

    -(void)createBackendConfigAsyncWithRequest:(ApigatewayCreateBackendConfigRequest*) createBackendConfigRequest
    completionHandler:(void(^)(int statusCode,ApigatewayCreateBackendConfigResponse* _Nullable createBackendConfigResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    querySubscriptionKey sync request
    @param querySubscriptionKeyRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `querySubscriptionKeyResponse` the request response data model
    */
    -(NSDictionary*) querySubscriptionKeySyncWithRequest:(ApigatewayQuerySubscriptionKeyRequest*) querySubscriptionKeyRequest;

    -(void)querySubscriptionKeyAsyncWithRequest:(ApigatewayQuerySubscriptionKeyRequest*) querySubscriptionKeyRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQuerySubscriptionKeyResponse* _Nullable querySubscriptionKeyResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    modifyApiGroupAttribute sync request
    @param modifyApiGroupAttributeRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyApiGroupAttributeResponse` the request response data model
    */
    -(NSDictionary*) modifyApiGroupAttributeSyncWithRequest:(ApigatewayModifyApiGroupAttributeRequest*) modifyApiGroupAttributeRequest;

    -(void)modifyApiGroupAttributeAsyncWithRequest:(ApigatewayModifyApiGroupAttributeRequest*) modifyApiGroupAttributeRequest
    completionHandler:(void(^)(int statusCode,ApigatewayModifyApiGroupAttributeResponse* _Nullable modifyApiGroupAttributeResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    checkPin sync request
    @param checkPinRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `checkPinResponse` the request response data model
    */
    -(NSDictionary*) checkPinSyncWithRequest:(ApigatewayCheckPinRequest*) checkPinRequest;

    -(void)checkPinAsyncWithRequest:(ApigatewayCheckPinRequest*) checkPinRequest
    completionHandler:(void(^)(int statusCode,ApigatewayCheckPinResponse* _Nullable checkPinResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    checkPolicyName sync request
    @param checkPolicyNameRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `checkPolicyNameResponse` the request response data model
    */
    -(NSDictionary*) checkPolicyNameSyncWithRequest:(ApigatewayCheckPolicyNameRequest*) checkPolicyNameRequest;

    -(void)checkPolicyNameAsyncWithRequest:(ApigatewayCheckPolicyNameRequest*) checkPolicyNameRequest
    completionHandler:(void(^)(int statusCode,ApigatewayCheckPolicyNameResponse* _Nullable checkPolicyNameResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    queryRateLimitPolicy sync request
    @param queryRateLimitPolicyRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryRateLimitPolicyResponse` the request response data model
    */
    -(NSDictionary*) queryRateLimitPolicySyncWithRequest:(ApigatewayQueryRateLimitPolicyRequest*) queryRateLimitPolicyRequest;

    -(void)queryRateLimitPolicyAsyncWithRequest:(ApigatewayQueryRateLimitPolicyRequest*) queryRateLimitPolicyRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQueryRateLimitPolicyResponse* _Nullable queryRateLimitPolicyResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    updateApi sync request
    @param updateApiRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `updateApiResponse` the request response data model
    */
    -(NSDictionary*) updateApiSyncWithRequest:(ApigatewayUpdateApiRequest*) updateApiRequest;

    -(void)updateApiAsyncWithRequest:(ApigatewayUpdateApiRequest*) updateApiRequest
    completionHandler:(void(^)(int statusCode,ApigatewayUpdateApiResponse* _Nullable updateApiResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeRevisions sync request
    @param describeRevisionsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeRevisionsResponse` the request response data model
    */
    -(NSDictionary*) describeRevisionsSyncWithRequest:(ApigatewayDescribeRevisionsRequest*) describeRevisionsRequest;

    -(void)describeRevisionsAsyncWithRequest:(ApigatewayDescribeRevisionsRequest*) describeRevisionsRequest
    completionHandler:(void(^)(int statusCode,ApigatewayDescribeRevisionsResponse* _Nullable describeRevisionsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createApiGroup sync request
    @param createApiGroupRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createApiGroupResponse` the request response data model
    */
    -(NSDictionary*) createApiGroupSyncWithRequest:(ApigatewayCreateApiGroupRequest*) createApiGroupRequest;

    -(void)createApiGroupAsyncWithRequest:(ApigatewayCreateApiGroupRequest*) createApiGroupRequest
    completionHandler:(void(^)(int statusCode,ApigatewayCreateApiGroupResponse* _Nullable createApiGroupResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    updateAccessKey sync request
    @param updateAccessKeyRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `updateAccessKeyResponse` the request response data model
    */
    -(NSDictionary*) updateAccessKeySyncWithRequest:(ApigatewayUpdateAccessKeyRequest*) updateAccessKeyRequest;

    -(void)updateAccessKeyAsyncWithRequest:(ApigatewayUpdateAccessKeyRequest*) updateAccessKeyRequest
    completionHandler:(void(^)(int statusCode,ApigatewayUpdateAccessKeyResponse* _Nullable updateAccessKeyResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    queryAccessAuth sync request
    @param queryAccessAuthRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryAccessAuthResponse` the request response data model
    */
    -(NSDictionary*) queryAccessAuthSyncWithRequest:(ApigatewayQueryAccessAuthRequest*) queryAccessAuthRequest;

    -(void)queryAccessAuthAsyncWithRequest:(ApigatewayQueryAccessAuthRequest*) queryAccessAuthRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQueryAccessAuthResponse* _Nullable queryAccessAuthResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    queryKeyGroupList sync request
    @param queryKeyGroupListRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryKeyGroupListResponse` the request response data model
    */
    -(NSDictionary*) queryKeyGroupListSyncWithRequest:(ApigatewayQueryKeyGroupListRequest*) queryKeyGroupListRequest;

    -(void)queryKeyGroupListAsyncWithRequest:(ApigatewayQueryKeyGroupListRequest*) queryKeyGroupListRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQueryKeyGroupListResponse* _Nullable queryKeyGroupListResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    queryUserDomains sync request
    @param queryUserDomainsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryUserDomainsResponse` the request response data model
    */
    -(NSDictionary*) queryUserDomainsSyncWithRequest:(ApigatewayQueryUserDomainsRequest*) queryUserDomainsRequest;

    -(void)queryUserDomainsAsyncWithRequest:(ApigatewayQueryUserDomainsRequest*) queryUserDomainsRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQueryUserDomainsResponse* _Nullable queryUserDomainsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    authorizedApiGroupList sync request
    @param authorizedApiGroupListRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `authorizedApiGroupListResponse` the request response data model
    */
    -(NSDictionary*) authorizedApiGroupListSyncWithRequest:(ApigatewayAuthorizedApiGroupListRequest*) authorizedApiGroupListRequest;

    -(void)authorizedApiGroupListAsyncWithRequest:(ApigatewayAuthorizedApiGroupListRequest*) authorizedApiGroupListRequest
    completionHandler:(void(^)(int statusCode,ApigatewayAuthorizedApiGroupListResponse* _Nullable authorizedApiGroupListResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    querySubscriptionKeys sync request
    @param querySubscriptionKeysRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `querySubscriptionKeysResponse` the request response data model
    */
    -(NSDictionary*) querySubscriptionKeysSyncWithRequest:(ApigatewayQuerySubscriptionKeysRequest*) querySubscriptionKeysRequest;

    -(void)querySubscriptionKeysAsyncWithRequest:(ApigatewayQuerySubscriptionKeysRequest*) querySubscriptionKeysRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQuerySubscriptionKeysResponse* _Nullable querySubscriptionKeysResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    updateSubscriptionKey sync request
    @param updateSubscriptionKeyRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `updateSubscriptionKeyResponse` the request response data model
    */
    -(NSDictionary*) updateSubscriptionKeySyncWithRequest:(ApigatewayUpdateSubscriptionKeyRequest*) updateSubscriptionKeyRequest;

    -(void)updateSubscriptionKeyAsyncWithRequest:(ApigatewayUpdateSubscriptionKeyRequest*) updateSubscriptionKeyRequest
    completionHandler:(void(^)(int statusCode,ApigatewayUpdateSubscriptionKeyResponse* _Nullable updateSubscriptionKeyResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    queryBindGroupKey sync request
    @param queryBindGroupKeyRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryBindGroupKeyResponse` the request response data model
    */
    -(NSDictionary*) queryBindGroupKeySyncWithRequest:(ApigatewayQueryBindGroupKeyRequest*) queryBindGroupKeyRequest;

    -(void)queryBindGroupKeyAsyncWithRequest:(ApigatewayQueryBindGroupKeyRequest*) queryBindGroupKeyRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQueryBindGroupKeyResponse* _Nullable queryBindGroupKeyResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    modifyRevision sync request
    @param modifyRevisionRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyRevisionResponse` the request response data model
    */
    -(NSDictionary*) modifyRevisionSyncWithRequest:(ApigatewayModifyRevisionRequest*) modifyRevisionRequest;

    -(void)modifyRevisionAsyncWithRequest:(ApigatewayModifyRevisionRequest*) modifyRevisionRequest
    completionHandler:(void(^)(int statusCode,ApigatewayModifyRevisionResponse* _Nullable modifyRevisionResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    queryBindGroupPolicy sync request
    @param queryBindGroupPolicyRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryBindGroupPolicyResponse` the request response data model
    */
    -(NSDictionary*) queryBindGroupPolicySyncWithRequest:(ApigatewayQueryBindGroupPolicyRequest*) queryBindGroupPolicyRequest;

    -(void)queryBindGroupPolicyAsyncWithRequest:(ApigatewayQueryBindGroupPolicyRequest*) queryBindGroupPolicyRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQueryBindGroupPolicyResponse* _Nullable queryBindGroupPolicyResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteApi sync request
    @param deleteApiRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteApiResponse` the request response data model
    */
    -(NSDictionary*) deleteApiSyncWithRequest:(ApigatewayDeleteApiRequest*) deleteApiRequest;

    -(void)deleteApiAsyncWithRequest:(ApigatewayDeleteApiRequest*) deleteApiRequest
    completionHandler:(void(^)(int statusCode,ApigatewayDeleteApiResponse* _Nullable deleteApiResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeDeployment sync request
    @param describeDeploymentRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeDeploymentResponse` the request response data model
    */
    -(NSDictionary*) describeDeploymentSyncWithRequest:(ApigatewayDescribeDeploymentRequest*) describeDeploymentRequest;

    -(void)describeDeploymentAsyncWithRequest:(ApigatewayDescribeDeploymentRequest*) describeDeploymentRequest
    completionHandler:(void(^)(int statusCode,ApigatewayDescribeDeploymentResponse* _Nullable describeDeploymentResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeBackendConfig sync request
    @param describeBackendConfigRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeBackendConfigResponse` the request response data model
    */
    -(NSDictionary*) describeBackendConfigSyncWithRequest:(ApigatewayDescribeBackendConfigRequest*) describeBackendConfigRequest;

    -(void)describeBackendConfigAsyncWithRequest:(ApigatewayDescribeBackendConfigRequest*) describeBackendConfigRequest
    completionHandler:(void(^)(int statusCode,ApigatewayDescribeBackendConfigResponse* _Nullable describeBackendConfigResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    batchOffline sync request
    @param batchOfflineRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `batchOfflineResponse` the request response data model
    */
    -(NSDictionary*) batchOfflineSyncWithRequest:(ApigatewayBatchOfflineRequest*) batchOfflineRequest;

    -(void)batchOfflineAsyncWithRequest:(ApigatewayBatchOfflineRequest*) batchOfflineRequest
    completionHandler:(void(^)(int statusCode,ApigatewayBatchOfflineResponse* _Nullable batchOfflineResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createAccessAuth sync request
    @param createAccessAuthRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createAccessAuthResponse` the request response data model
    */
    -(NSDictionary*) createAccessAuthSyncWithRequest:(ApigatewayCreateAccessAuthRequest*) createAccessAuthRequest;

    -(void)createAccessAuthAsyncWithRequest:(ApigatewayCreateAccessAuthRequest*) createAccessAuthRequest
    completionHandler:(void(^)(int statusCode,ApigatewayCreateAccessAuthResponse* _Nullable createAccessAuthResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeBackendConfigs sync request
    @param describeBackendConfigsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeBackendConfigsResponse` the request response data model
    */
    -(NSDictionary*) describeBackendConfigsSyncWithRequest:(ApigatewayDescribeBackendConfigsRequest*) describeBackendConfigsRequest;

    -(void)describeBackendConfigsAsyncWithRequest:(ApigatewayDescribeBackendConfigsRequest*) describeBackendConfigsRequest
    completionHandler:(void(^)(int statusCode,ApigatewayDescribeBackendConfigsResponse* _Nullable describeBackendConfigsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeApiGroup sync request
    @param describeApiGroupRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeApiGroupResponse` the request response data model
    */
    -(NSDictionary*) describeApiGroupSyncWithRequest:(ApigatewayDescribeApiGroupRequest*) describeApiGroupRequest;

    -(void)describeApiGroupAsyncWithRequest:(ApigatewayDescribeApiGroupRequest*) describeApiGroupRequest
    completionHandler:(void(^)(int statusCode,ApigatewayDescribeApiGroupResponse* _Nullable describeApiGroupResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createAccessKey sync request
    @param createAccessKeyRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createAccessKeyResponse` the request response data model
    */
    -(NSDictionary*) createAccessKeySyncWithRequest:(ApigatewayCreateAccessKeyRequest*) createAccessKeyRequest;

    -(void)createAccessKeyAsyncWithRequest:(ApigatewayCreateAccessKeyRequest*) createAccessKeyRequest
    completionHandler:(void(^)(int statusCode,ApigatewayCreateAccessKeyResponse* _Nullable createAccessKeyResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteAccessAuth sync request
    @param deleteAccessAuthRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteAccessAuthResponse` the request response data model
    */
    -(NSDictionary*) deleteAccessAuthSyncWithRequest:(ApigatewayDeleteAccessAuthRequest*) deleteAccessAuthRequest;

    -(void)deleteAccessAuthAsyncWithRequest:(ApigatewayDeleteAccessAuthRequest*) deleteAccessAuthRequest
    completionHandler:(void(^)(int statusCode,ApigatewayDeleteAccessAuthResponse* _Nullable deleteAccessAuthResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    updateKey sync request
    @param updateKeyRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `updateKeyResponse` the request response data model
    */
    -(NSDictionary*) updateKeySyncWithRequest:(ApigatewayUpdateKeyRequest*) updateKeyRequest;

    -(void)updateKeyAsyncWithRequest:(ApigatewayUpdateKeyRequest*) updateKeyRequest
    completionHandler:(void(^)(int statusCode,ApigatewayUpdateKeyResponse* _Nullable updateKeyResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    checkRevisionExist sync request
    @param checkRevisionExistRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `checkRevisionExistResponse` the request response data model
    */
    -(NSDictionary*) checkRevisionExistSyncWithRequest:(ApigatewayCheckRevisionExistRequest*) checkRevisionExistRequest;

    -(void)checkRevisionExistAsyncWithRequest:(ApigatewayCheckRevisionExistRequest*) checkRevisionExistRequest
    completionHandler:(void(^)(int statusCode,ApigatewayCheckRevisionExistResponse* _Nullable checkRevisionExistResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    updateAccessAuth sync request
    @param updateAccessAuthRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `updateAccessAuthResponse` the request response data model
    */
    -(NSDictionary*) updateAccessAuthSyncWithRequest:(ApigatewayUpdateAccessAuthRequest*) updateAccessAuthRequest;

    -(void)updateAccessAuthAsyncWithRequest:(ApigatewayUpdateAccessAuthRequest*) updateAccessAuthRequest
    completionHandler:(void(^)(int statusCode,ApigatewayUpdateAccessAuthResponse* _Nullable updateAccessAuthResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    queryUcAccessKeys sync request
    @param queryUcAccessKeysRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryUcAccessKeysResponse` the request response data model
    */
    -(NSDictionary*) queryUcAccessKeysSyncWithRequest:(ApigatewayQueryUcAccessKeysRequest*) queryUcAccessKeysRequest;

    -(void)queryUcAccessKeysAsyncWithRequest:(ApigatewayQueryUcAccessKeysRequest*) queryUcAccessKeysRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQueryUcAccessKeysResponse* _Nullable queryUcAccessKeysResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    queryKeyInfo sync request
    @param queryKeyInfoRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryKeyInfoResponse` the request response data model
    */
    -(NSDictionary*) queryKeyInfoSyncWithRequest:(ApigatewayQueryKeyInfoRequest*) queryKeyInfoRequest;

    -(void)queryKeyInfoAsyncWithRequest:(ApigatewayQueryKeyInfoRequest*) queryKeyInfoRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQueryKeyInfoResponse* _Nullable queryKeyInfoResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    queryKeys sync request
    @param queryKeysRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryKeysResponse` the request response data model
    */
    -(NSDictionary*) queryKeysSyncWithRequest:(ApigatewayQueryKeysRequest*) queryKeysRequest;

    -(void)queryKeysAsyncWithRequest:(ApigatewayQueryKeysRequest*) queryKeysRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQueryKeysResponse* _Nullable queryKeysResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    queryPolicyGroupList sync request
    @param queryPolicyGroupListRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryPolicyGroupListResponse` the request response data model
    */
    -(NSDictionary*) queryPolicyGroupListSyncWithRequest:(ApigatewayQueryPolicyGroupListRequest*) queryPolicyGroupListRequest;

    -(void)queryPolicyGroupListAsyncWithRequest:(ApigatewayQueryPolicyGroupListRequest*) queryPolicyGroupListRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQueryPolicyGroupListResponse* _Nullable queryPolicyGroupListResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    updateBackendConfig sync request
    @param updateBackendConfigRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `updateBackendConfigResponse` the request response data model
    */
    -(NSDictionary*) updateBackendConfigSyncWithRequest:(ApigatewayUpdateBackendConfigRequest*) updateBackendConfigRequest;

    -(void)updateBackendConfigAsyncWithRequest:(ApigatewayUpdateBackendConfigRequest*) updateBackendConfigRequest
    completionHandler:(void(^)(int statusCode,ApigatewayUpdateBackendConfigResponse* _Nullable updateBackendConfigResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    queryBindGroupAuth sync request
    @param queryBindGroupAuthRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryBindGroupAuthResponse` the request response data model
    */
    -(NSDictionary*) queryBindGroupAuthSyncWithRequest:(ApigatewayQueryBindGroupAuthRequest*) queryBindGroupAuthRequest;

    -(void)queryBindGroupAuthAsyncWithRequest:(ApigatewayQueryBindGroupAuthRequest*) queryBindGroupAuthRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQueryBindGroupAuthResponse* _Nullable queryBindGroupAuthResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createKey sync request
    @param createKeyRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createKeyResponse` the request response data model
    */
    -(NSDictionary*) createKeySyncWithRequest:(ApigatewayCreateKeyRequest*) createKeyRequest;

    -(void)createKeyAsyncWithRequest:(ApigatewayCreateKeyRequest*) createKeyRequest
    completionHandler:(void(^)(int statusCode,ApigatewayCreateKeyResponse* _Nullable createKeyResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeApiGroups sync request
    @param describeApiGroupsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeApiGroupsResponse` the request response data model
    */
    -(NSDictionary*) describeApiGroupsSyncWithRequest:(ApigatewayDescribeApiGroupsRequest*) describeApiGroupsRequest;

    -(void)describeApiGroupsAsyncWithRequest:(ApigatewayDescribeApiGroupsRequest*) describeApiGroupsRequest
    completionHandler:(void(^)(int statusCode,ApigatewayDescribeApiGroupsResponse* _Nullable describeApiGroupsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createRateLimitPolicy sync request
    @param createRateLimitPolicyRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createRateLimitPolicyResponse` the request response data model
    */
    -(NSDictionary*) createRateLimitPolicySyncWithRequest:(ApigatewayCreateRateLimitPolicyRequest*) createRateLimitPolicyRequest;

    -(void)createRateLimitPolicyAsyncWithRequest:(ApigatewayCreateRateLimitPolicyRequest*) createRateLimitPolicyRequest
    completionHandler:(void(^)(int statusCode,ApigatewayCreateRateLimitPolicyResponse* _Nullable createRateLimitPolicyResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createRevision sync request
    @param createRevisionRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createRevisionResponse` the request response data model
    */
    -(NSDictionary*) createRevisionSyncWithRequest:(ApigatewayCreateRevisionRequest*) createRevisionRequest;

    -(void)createRevisionAsyncWithRequest:(ApigatewayCreateRevisionRequest*) createRevisionRequest
    completionHandler:(void(^)(int statusCode,ApigatewayCreateRevisionResponse* _Nullable createRevisionResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteRateLimitPolicy sync request
    @param deleteRateLimitPolicyRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteRateLimitPolicyResponse` the request response data model
    */
    -(NSDictionary*) deleteRateLimitPolicySyncWithRequest:(ApigatewayDeleteRateLimitPolicyRequest*) deleteRateLimitPolicyRequest;

    -(void)deleteRateLimitPolicyAsyncWithRequest:(ApigatewayDeleteRateLimitPolicyRequest*) deleteRateLimitPolicyRequest
    completionHandler:(void(^)(int statusCode,ApigatewayDeleteRateLimitPolicyResponse* _Nullable deleteRateLimitPolicyResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    queryAuthGroupList sync request
    @param queryAuthGroupListRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryAuthGroupListResponse` the request response data model
    */
    -(NSDictionary*) queryAuthGroupListSyncWithRequest:(ApigatewayQueryAuthGroupListRequest*) queryAuthGroupListRequest;

    -(void)queryAuthGroupListAsyncWithRequest:(ApigatewayQueryAuthGroupListRequest*) queryAuthGroupListRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQueryAuthGroupListResponse* _Nullable queryAuthGroupListResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    bindGroupPolicy sync request
    @param bindGroupPolicyRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `bindGroupPolicyResponse` the request response data model
    */
    -(NSDictionary*) bindGroupPolicySyncWithRequest:(ApigatewayBindGroupPolicyRequest*) bindGroupPolicyRequest;

    -(void)bindGroupPolicyAsyncWithRequest:(ApigatewayBindGroupPolicyRequest*) bindGroupPolicyRequest
    completionHandler:(void(^)(int statusCode,ApigatewayBindGroupPolicyResponse* _Nullable bindGroupPolicyResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deploy sync request
    @param deployRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deployResponse` the request response data model
    */
    -(NSDictionary*) deploySyncWithRequest:(ApigatewayDeployRequest*) deployRequest;

    -(void)deployAsyncWithRequest:(ApigatewayDeployRequest*) deployRequest
    completionHandler:(void(^)(int statusCode,ApigatewayDeployResponse* _Nullable deployResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    queryAccessKeys sync request
    @param queryAccessKeysRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryAccessKeysResponse` the request response data model
    */
    -(NSDictionary*) queryAccessKeysSyncWithRequest:(ApigatewayQueryAccessKeysRequest*) queryAccessKeysRequest;

    -(void)queryAccessKeysAsyncWithRequest:(ApigatewayQueryAccessKeysRequest*) queryAccessKeysRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQueryAccessKeysResponse* _Nullable queryAccessKeysResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    updateApiByName sync request
    @param updateApiByNameRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `updateApiByNameResponse` the request response data model
    */
    -(NSDictionary*) updateApiByNameSyncWithRequest:(ApigatewayUpdateApiByNameRequest*) updateApiByNameRequest;

    -(void)updateApiByNameAsyncWithRequest:(ApigatewayUpdateApiByNameRequest*) updateApiByNameRequest
    completionHandler:(void(^)(int statusCode,ApigatewayUpdateApiByNameResponse* _Nullable updateApiByNameResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteUserDomain sync request
    @param deleteUserDomainRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteUserDomainResponse` the request response data model
    */
    -(NSDictionary*) deleteUserDomainSyncWithRequest:(ApigatewayDeleteUserDomainRequest*) deleteUserDomainRequest;

    -(void)deleteUserDomainAsyncWithRequest:(ApigatewayDeleteUserDomainRequest*) deleteUserDomainRequest
    completionHandler:(void(^)(int statusCode,ApigatewayDeleteUserDomainResponse* _Nullable deleteUserDomainResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createSubscriptionKey sync request
    @param createSubscriptionKeyRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createSubscriptionKeyResponse` the request response data model
    */
    -(NSDictionary*) createSubscriptionKeySyncWithRequest:(ApigatewayCreateSubscriptionKeyRequest*) createSubscriptionKeyRequest;

    -(void)createSubscriptionKeyAsyncWithRequest:(ApigatewayCreateSubscriptionKeyRequest*) createSubscriptionKeyRequest
    completionHandler:(void(^)(int statusCode,ApigatewayCreateSubscriptionKeyResponse* _Nullable createSubscriptionKeyResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    queryRateLimitPolicies sync request
    @param queryRateLimitPoliciesRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryRateLimitPoliciesResponse` the request response data model
    */
    -(NSDictionary*) queryRateLimitPoliciesSyncWithRequest:(ApigatewayQueryRateLimitPoliciesRequest*) queryRateLimitPoliciesRequest;

    -(void)queryRateLimitPoliciesAsyncWithRequest:(ApigatewayQueryRateLimitPoliciesRequest*) queryRateLimitPoliciesRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQueryRateLimitPoliciesResponse* _Nullable queryRateLimitPoliciesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeDeployments sync request
    @param describeDeploymentsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeDeploymentsResponse` the request response data model
    */
    -(NSDictionary*) describeDeploymentsSyncWithRequest:(ApigatewayDescribeDeploymentsRequest*) describeDeploymentsRequest;

    -(void)describeDeploymentsAsyncWithRequest:(ApigatewayDescribeDeploymentsRequest*) describeDeploymentsRequest
    completionHandler:(void(^)(int statusCode,ApigatewayDescribeDeploymentsResponse* _Nullable describeDeploymentsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteRevision sync request
    @param deleteRevisionRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteRevisionResponse` the request response data model
    */
    -(NSDictionary*) deleteRevisionSyncWithRequest:(ApigatewayDeleteRevisionRequest*) deleteRevisionRequest;

    -(void)deleteRevisionAsyncWithRequest:(ApigatewayDeleteRevisionRequest*) deleteRevisionRequest
    completionHandler:(void(^)(int statusCode,ApigatewayDeleteRevisionResponse* _Nullable deleteRevisionResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    queryApi sync request
    @param queryApiRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryApiResponse` the request response data model
    */
    -(NSDictionary*) queryApiSyncWithRequest:(ApigatewayQueryApiRequest*) queryApiRequest;

    -(void)queryApiAsyncWithRequest:(ApigatewayQueryApiRequest*) queryApiRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQueryApiResponse* _Nullable queryApiResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    checkApiNameExist sync request
    @param checkApiNameExistRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `checkApiNameExistResponse` the request response data model
    */
    -(NSDictionary*) checkApiNameExistSyncWithRequest:(ApigatewayCheckApiNameExistRequest*) checkApiNameExistRequest;

    -(void)checkApiNameExistAsyncWithRequest:(ApigatewayCheckApiNameExistRequest*) checkApiNameExistRequest
    completionHandler:(void(^)(int statusCode,ApigatewayCheckApiNameExistResponse* _Nullable checkApiNameExistResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    queryApis sync request
    @param queryApisRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryApisResponse` the request response data model
    */
    -(NSDictionary*) queryApisSyncWithRequest:(ApigatewayQueryApisRequest*) queryApisRequest;

    -(void)queryApisAsyncWithRequest:(ApigatewayQueryApisRequest*) queryApisRequest
    completionHandler:(void(^)(int statusCode,ApigatewayQueryApisResponse* _Nullable queryApisResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    resetKey sync request
    @param resetKeyRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `resetKeyResponse` the request response data model
    */
    -(NSDictionary*) resetKeySyncWithRequest:(ApigatewayResetKeyRequest*) resetKeyRequest;

    -(void)resetKeyAsyncWithRequest:(ApigatewayResetKeyRequest*) resetKeyRequest
    completionHandler:(void(^)(int statusCode,ApigatewayResetKeyResponse* _Nullable resetKeyResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteBackendConfig sync request
    @param deleteBackendConfigRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteBackendConfigResponse` the request response data model
    */
    -(NSDictionary*) deleteBackendConfigSyncWithRequest:(ApigatewayDeleteBackendConfigRequest*) deleteBackendConfigRequest;

    -(void)deleteBackendConfigAsyncWithRequest:(ApigatewayDeleteBackendConfigRequest*) deleteBackendConfigRequest
    completionHandler:(void(^)(int statusCode,ApigatewayDeleteBackendConfigResponse* _Nullable deleteBackendConfigResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteApiGroup sync request
    @param deleteApiGroupRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteApiGroupResponse` the request response data model
    */
    -(NSDictionary*) deleteApiGroupSyncWithRequest:(ApigatewayDeleteApiGroupRequest*) deleteApiGroupRequest;

    -(void)deleteApiGroupAsyncWithRequest:(ApigatewayDeleteApiGroupRequest*) deleteApiGroupRequest
    completionHandler:(void(^)(int statusCode,ApigatewayDeleteApiGroupResponse* _Nullable deleteApiGroupResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;

    /**
    apigateway common sync request
    @param  jdcloudDataRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
    */
    -(NSDictionary*) apigatewayCommonSyncWithRequest:(JDCloudDataRequest*) jdcloudDataRequest
                                           url:(NSString*) url
                                        method:(NSString*) method;

    -(void)apigatewayCommonAsyncWithRequest:(JDCloudDataRequest*) jdcloudDataRequest
                                  url:(NSString*) url
                               method:(NSString*) method
                    completionHandler:(void(^)(int statusCode, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;

    @end


    #endif /* ApigatewayClient_h */
